#include "vector.hpp"
#include <iostream>
#include <vector>
using std::cout;
using std::endl;

// int main()
// {
//     // STL::vector<int> v;
//     // v.push_back(1);
//     // // for(auto x : v) cout << *x << endl;
//     // for (STL::vector<int>::iterator it = v.begin(); it != v.end(); it++)
//     // {
//     //     cout << *it << " " << endl;
//     // }
//     // cout << "size: " << v.size() << "cap: " << v.capcity();
//     // cout << endl;
//     // for (int i = 0; i < 10; i++)
//     // {
//     //     v.push_back(i);
//     // }
//     // for (STL::vector<int>::iterator it = v.begin(); it != v.end(); it++)
//     // {
//     //     cout << *it << " ";
//     // }
//     // cout << "size: " << v.size() << "cap: " << v.capcity();
//     // cout << endl;

//     // STL::vector<int>::iterator it = v.find(8);
//     // auto x = v.insert(it, 88);
//     // cout << *x << endl;
//     std::vector<int> stl_v({1, 2, 3});
//     // STL::vector<int> v(10);
//     // v.print();
//     // STL::vector<int> v(stl_v.begin(), stl_v.end());
//     // v.print();
//     // STL::vector<int> v2(v);
//     // v2.print();
//     // STL::vector<int> v3;
//     // v3 = v2;
//     // v3.print();
//     STL::vector<int> v2({1, 2, 3, 4, 3});
//     v2.print();
//     v2[3] = 100;
//     v2.print();

//     return 0;
// }

// 可以这样测试你的vector
// int main()
// {
//     STL::vector<int> v1 = {1, 2, 3, 4, 5};
//     v1.print();
    
//     STL::vector<int> v2(3, 10);  // 3个10
//     v2.print();
    
//     v1.push_back(6);
//     v1.print();
    
//     auto it = v1.find(3);
//     if (it != v1.end())
//         v1.insert(it, 99);
//     v1.print();
    
//     return 0;
// }

// int main()
// {
//     STL::vector<int> v({1,2,3});
//     STL::vector<int> v2(std::move(v));
//     v2.print();
//     v2.emplace_back(2222);
//     v2.print();
//     return 0;
// }

// void func(int& x)
// {
//     cout << "func" << endl;
// }

// void func(int x)
// {
//     cout << "func" << endl;
// }

// int main()
// {
//     func(1);
//     return 0;
// }

// int main()
// {
//     STL::vector<int> v({1, 2, 3, 4, 5});
//     v.insert(v.begin(), 10);
//     v.push_back(10);
//     v.print();
//     return 0;
// }
// #include <cstdlib>

// int main()
// {
//     int* ptr = (int*)malloc(sizeof(int)* 10);
//     return 0;
// }
// #include <string>
// int main()
// {
//     // std::vector<std::string> arr({"hello", "world", "apple", "pear"});
//     STL::vector<std::string> v({"hello", "world", "apple", "pear"});
//     v.insert(v.begin(), "words:");
//     v.push_back("finish!");
//     v.print();
//     return 0;
// }

// int main()
// {
//     STL::vector<int> v({1, 2, 3, 4, 5});
//     v.insert(v.begin(), 10);
//     v.push_back(10);
//         v[4] = 4444;
//     v.print();

//     return 0;
// }